Matlab相位截断误差仿真概要.doc

Matlab相位截断误差仿真概要

Matlab仿真 误差频谱仿真: N=14 M=4 l=8 k=1 程序: clear; Fs =1;%采样频率1MHz M=4;%截取累加器的高M位; N = 14;%累加器的位数; l=8; k=1; K=2^l*(2*k+1); L=2^(N-M-l); pe= 100000; n=1:pe; pp=pe+1;%总的采样点数 add_y=(n*K)/2^N; error=(round(n*(2*k+1))/L)/(2^M); NFFT = 2^nextpow2(pp);%设定频谱分析点数 f = Fs/2*linspace(0,1,NFFT/2+1);% 只显示 0?Fs/2 的频率 rom_y=sin(2*pi*error);%有相位截断误差 Y = fft(rom_y,NFFT)/pp;% NFFT 点的 FFT 变换 value_Y = abs(Y(1:NFFT/2+1));% 求 FFT 变换值的绝对值 DB_Y = 20*log10(value_Y);% 求功率的分贝 plot(f,value_Y); %绘制频谱图,只有相位截断误差 axis([0 1 0 0.5]); N=14 M=4 l=7 k=4 程序: clear; Fs =1;%采样频率1MHz M=4;%截取累加器的高M位; N=14;%累加器的位数; l=7; k=4; K=2^l*(2*k+1);%频率控制字 L=2^(N-M-l); pe= 100000; n=1:pe; pp=pe+1;%总的采样点数 add_y=(n*K)/2^N; error=(round(n*(2*k+1))/L)/(2^M); NFFT = 2^nextpow2(pp);%设定频谱分析点数 f = Fs/2*linspace(0,1,NFFT/2+1);% 只显示 0?Fs/2 的频率 rom_y=sin(2*pi*error);%有相位截断误差 Y = fft(rom_y,NFFT)/pp;% NFFT 点的 FFT 变换 value_Y = abs(Y(1:NFFT/2+1));% 求 FFT 变换值的绝对值 DB_Y = 20*log10(value_Y);% 求功率的分贝 plot(f,value_Y); %绘制频谱图,只有相位截断误差 axis([0 1 0 0.5]);%包括坐标轴范围,axis([xmin xmax ymin ymax]) N=14 M=4 l=9 k=0 程序: clear; Fs =1;%采样频率1MHz M=4;%截取累加器的高M位; N = 14;%累加器的位数; 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;%总的采样点数 error=(2*m*pi)/2^(N-l); NFFT = 2^nextpow2(pp);%设定频谱分析点数 f = Fs/2*linspace(0,1,NFFT/2+1);% 只显示 0?Fs/2 的频率 rom_y=sin(2*pi*error);%有相位截断误差 Y = fft(rom_y,NFFT)/pp;% NFFT 点的 FFT 变换 value_Y = abs(Y(1:NFFT/2+1));% 求 FFT 变换值的绝对值 DB_Y = 20*log10(value_Y);% 求功率的分贝 plot(f,value_Y); %绘制频谱图 没有幅度量化误差,只有相位截断误差 axis([0 1 0 0.5]); N=14 M=5 l=10 k=0 程序: clear; Fs =1;%采样频率1MHz M=5;%截取累加器的高M位; N = 14;%累加器的位数; l=10; k=0;%频率控制字,即累加的步长; K=2^l*(2*k+1); L=2^(N-M-l); pe= 100000; n=1:pe; pp=pe+1;%总的采样点数 add_y=(n*K)/2^N; NFFT = 2^nextpow2(pp);%设定频谱分析点数 f = Fs/2*linspace(0,1,NFFT/2+1);% 只显示 0?Fs/2 的频率 rom_y=sin(2*pi*add_y);%有相位截断误差 Y = fft(rom_y,NFFT)/pp;% NFFT 点的 FFT 变换 value_Y = abs(Y(1:NFFT/2+1));% 求 FFT 变换值的绝对值 DB_Y = 20*log10(value_Y);% 求功率的分贝 plot(f,value_Y); %绘制频谱图

文档评论(0)

1亿VIP精品文档

相关文档