matlab计算截断误差,Matlab相位截断误差仿真综述.doc
Matlab仿真
誤差頻譜仿真:
N=14 M=4 l=8 k=1
程序:
clear;
Fs =1;%采樣頻率1MHz
M=4;%截取累加器的高M(jìn)位;
N = 14;%累加器的位數(shù);
l=8;
k=1;
K=2^l*(2*k+1);
L=2^(N-M-l);
pe= 100000;
n=1:pe;
pp=pe+1;%總的采樣點(diǎn)數(shù)
add_y=(n*K)/2^N;
error=(round(n*(2*k+1))/L)/(2^M);
NFFT = 2^nextpow2(pp);%設(shè)定頻譜分析點(diǎn)數(shù)
f = Fs/2*linspace(0,1,NFFT/2+1);% 只顯示 0?Fs/2 的頻率
rom_y=sin(2*pi*error);%有相位截?cái)嗾`差
Y = fft(rom_y,NFFT)/pp;% NFFT 點(diǎn)的 FFT 變換
value_Y = abs(Y(1:NFFT/2+1));% 求 FFT 變換值的絕對(duì)值
DB_Y = 20*log10(value_Y);% 求功率的分貝
plot(f,value_Y); %繪制頻譜圖,只有相位截?cái)嗾`差
axis([0 1 0 0.5]);
N=14 M=4 l=7 k=4
程序:
clear;
Fs =1;%采樣頻率1MHz
M=4;%截取累加器的高M(jìn)位;
N=14;%累加器的位數(shù);
l=7;
k=4;
K=2^l*(2*k+1);%頻率控制字
L=2^(N-M-l);
pe= 100000;
n=1:pe;
pp=pe+1;%總的采樣點(diǎn)數(shù)
add_y=(n*K)/2^N;
error=(round(n*(2*k+1))/L)/(2^M);
NFFT = 2^nextpow2(pp);%設(shè)定頻譜分析點(diǎn)數(shù)
f = Fs/2*linspace(0,1,NFFT/2+1);% 只顯示 0?Fs/2 的頻率
rom_y=sin(2*pi*error);%有相位截?cái)嗾`差
Y = fft(rom_y,NFFT)/pp;% NFFT 點(diǎn)的 FFT 變換
value_Y = abs(Y(1:NFFT/2+1));% 求 FFT 變換值的絕對(duì)值
DB_Y = 20*log10(value_Y);% 求功率的分貝
plot(f,value_Y); %繪制頻譜圖,只有相位截?cái)嗾`差
axis([0 1 0 0.5]);%包括坐標(biāo)軸范圍,axis([xmin xmax ymin ymax])
N=14 M=4 l=9 k=0
程序:
clear;
Fs =1;%采樣頻率1MHz
M=4;%截取累加器的高M(jìn)位;
N = 14;%累加器的位數(shù);
l=9;
k=0;%頻率控制字,即累加的步長;
K=2^l*(2*k+1);
L=2^(N-M-l);
m=1:L-1
pe= 100000;
n=1:pe;
pp=pe+1;%總的采樣點(diǎn)數(shù)
error=(2*m*pi)/2^(N-l);
NFFT = 2^nextpow2(pp);%設(shè)定頻譜分析點(diǎn)數(shù)
f = Fs/2*linspace(0,1,NFFT/2+1);% 只顯示 0?Fs/2 的頻率
rom_y=sin(2*pi*error);%有相位截?cái)嗾`差
Y = fft(rom_y,NFFT)/pp;% NFFT 點(diǎn)的 FFT 變換
value_Y = abs(Y(1:NFFT/2+1));% 求 FFT 變換值的絕對(duì)值
DB_Y = 20*log10(value_Y);% 求功率的分貝
plot(f,value_Y); %繪制頻譜圖 沒有幅度量化誤差,只有相位截?cái)嗾`差
axis([0 1 0 0.5]);
N=14 M=5 l=10 k=0
程序:
clear;
Fs =1;%采樣頻率1MHz
M=5;%截取累加器的高M(jìn)位;
N = 14;%累加器的位數(shù);
l=10;
k=0;%頻率控制字,即累加的步長;
K=2^l*(2*k+1);
L=2^(N-M-l);
pe= 100000;
n=1:pe;
pp=pe+1;%總的采樣點(diǎn)數(shù)
add_y=(n*K)/2^N;
NFFT = 2^nextpow2(pp);%設(shè)定頻譜分析點(diǎn)數(shù)
f = Fs/2*linspace(0,1,NFFT/2+1);% 只顯示 0?Fs/2 的頻率
rom_y=sin(2*pi*add_y);%有相位截?cái)嗾`差
Y = fft(rom_y,NFFT)/pp;% NFFT 點(diǎn)的 FFT 變換
value_Y = abs(Y(1:NFFT/2+1));% 求 FFT 變換值的絕對(duì)值
DB_Y = 20*log10(value_Y);% 求功率的分貝
plot(f,value_Y); %繪制頻譜圖
總結(jié)
以上是生活随笔為你收集整理的matlab计算截断误差,Matlab相位截断误差仿真综述.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 歌尔发布首个基于第一代骁龙 AR2 的量
- 下一篇: 明日起,苹果 iPhone、iPad、M