Matlab相位截断误差仿真_第1页
Matlab相位截断误差仿真_第2页
Matlab相位截断误差仿真_第3页
Matlab相位截断误差仿真_第4页
Matlab相位截断误差仿真_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Matlab仿真误差频谱仿真:N=14 M=4 l=8 k=1程序:clear;Fs =1;%采样频率1MHzM=4;%截取累加器的高M位;N = 14;%累加器的位数;l=8;k=1;K=2l*(2*k+1);L=2(N-M-l);pe= 100000;n=1:pe;pp=pe+1;%总的采样点数add_y=(n*K)/2N; error=(round(n*(2*k+1)/L)/(2M); NFFT = 2nextpow2(pp);%设定频谱分析点数f = Fs/2*linspace(0,1,NFFT/2+1);% 只显示 0?Fs/2 的频率rom_y=sin(2*pi*error);%

2、有相位截断误差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;%采样频率1MHzM=4;%截取累加器的高M位;N=14;%累加器的位数;l=7;k=4;K=2l*(2*k+1);%频率控制字L=2(N-M-l);pe= 100000;n=1:pe;pp=pe+

3、1;%总的采样点数add_y=(n*K)/2N; error=(round(n*(2*k+1)/L)/(2M); NFFT = 2nextpow2(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); %绘制

4、频谱图,只有相位截断误差axis(0 1 0 0.5);%包括坐标轴范围,axis(xmin xmax ymin ymax)N=14 M=4 l=9 k=0程序:clear;Fs =1;%采样频率1MHzM=4;%截取累加器的高M位;N = 14;%累加器的位数;l=9;k=0;%频率控制字,即累加的步长;K=2l*(2*k+1);L=2(N-M-l);m=1:L-1pe= 100000;n=1:pe;pp=pe+1;%总的采样点数error=(2*m*pi)/2(N-l); NFFT = 2nextpow2(pp);%设定频谱分析点数f = Fs/2*linspace(0,1,NFFT/2+

5、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;%采样频率1MHzM=5;%截取累加器的高M位;N = 14;%累加器的位数;l=10;k=0

6、;%频率控制字,即累加的步长;K=2l*(2*k+1);L=2(N-M-l);pe= 100000;n=1:pe;pp=pe+1;%总的采样点数add_y=(n*K)/2N; NFFT = 2nextpow2(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_

7、Y);% 求功率的分贝plot(f,value_Y); %绘制频谱图 没有幅度量化误差,只有相位截断误差axis(0 1 0 0.5);N=14 M=5 l=10 k=1程序:clear;Fs =1;%采样频率1MHzM=5;%截取累加器的高M位;N = 14;%累加器的位数;l=10;k=1;%频率控制字,即累加的步长;K=2l*(2*k+1);L=2(N-M-l);pe= 100000;n=1:pe;pp=pe+1;%总的采样点数add_y=(n*K)/2N; NFFT = 2nextpow2(pp);%设定频谱分析点数f = Fs/2*linspace(0,1,NFFT/2+1);% 只

8、显示 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); %绘制频谱图 没有幅度量化误差,只有相位截断误差axis(0 1 0 0.5);时域波形仿真:N=14 M=4 k=1 l=8程序:function y,t=dds_matlab(N,M,Fs,endtime) k=1;l=8;delta_F=Fs/

9、2N; disp('The frequency resolution of this DDS is:'. ,num2str(delta_F),'Hz'); disp('Output frequencies are:0Hz,',num2str(delta_F),'Hz,'. num2str(2*delta_F),'Hz,.,',num2str(Fs/2),'Hz'); % Construct the Sine Wave LUT store in array LUT t=2*pi*(0:2N-1)/2N

10、; LUT=sin(t); t=0:1/Fs:endtime; S=length(t); n=1; y=zeros(1,S); IND=zeros(1,S); % Input Frequency Word K=2l*(2*k+1); index=0; while n<=S IND(n)=index; index=index+K; index=mod(index,2N-2(N-M); n=n+1; end IND=IND+1; y=LUT(IND); plot(t,y); figure(1); axis(0 endtime -1.2 1.2); grid onN=14 M=8 k=4 l=

11、7程序:function y,t=dds_matlab(N,M,Fs,endtime) k=4;l=7;delta_F=Fs/2N; disp('The frequency resolution of this DDS is:'. ,num2str(delta_F),'Hz'); disp('Output frequencies are:0Hz,',num2str(delta_F),'Hz,'. num2str(2*delta_F),'Hz,.,',num2str(Fs/2),'Hz'); % Co

12、nstruct the Sine Wave LUT store in array LUT t=2*pi*(0:2N-1)/2N; LUT=sin(t); t=0:1/Fs:endtime; S=length(t); n=1; y=zeros(1,S); IND=zeros(1,S); % Input Frequency Word K=2l*(2*k+1); index=0; while n<=S IND(n)=index; index=index+K; index=mod(index,2N-2(N-M); n=n+1; end IND=IND+1; y=LUT(IND); plot(t,

13、y); figure(1); axis(0 endtime -1.2 1.2); grid onfunction y,t=dds_matlab(N,M,Fs,endtime) k=0;l=9;delta_F=Fs/2N; disp('The frequency resolution of this DDS is:'. ,num2str(delta_F),'Hz'); disp('Output frequencies are:0Hz,',num2str(delta_F),'Hz,'. num2str(2*delta_F),'

14、Hz,.,',num2str(Fs/2),'Hz'); % Construct the Sine Wave LUT store in array LUT t=2*pi*(0:2N-1)/2N; LUT=sin(t); t=0:1/Fs:endtime; S=length(t); n=1; y=zeros(1,S); IND=zeros(1,S); % Input Frequency Word K=2l*(2*k+1); index=0; while n<=S IND(n)=index; index=index+K; index=mod(index,2N-2(N-M

15、); n=n+1; end IND=IND+1; y=LUT(IND); plot(t,y); figure(1); axis(0 endtime -1.2 1.2); grid onN=14 M=15 k=0 l=10程序:function y,t=dds_matlab(N,M,Fs,endtime) k=0;l=10;delta_F=Fs/2N; disp('The frequency resolution of this DDS is:'. ,num2str(delta_F),'Hz'); disp('Output frequencies are:

16、0Hz,',num2str(delta_F),'Hz,'. num2str(2*delta_F),'Hz,.,',num2str(Fs/2),'Hz'); % Construct the Sine Wave LUT store in array LUT t=2*pi*(0:2N-1)/2N; LUT=sin(t); t=0:1/Fs:endtime; S=length(t); n=1; y=zeros(1,S); IND=zeros(1,S); % Input Frequency Word K=2l*(2*k+1); index=0; w

17、hile n<=S IND(n)=index; index=index+K; index=mod(index,2N);n=n+1; end IND=IND+1; y=LUT(IND); plot(t,y); figure(1); axis(0 endtime -1.2 1.2); grid onN=14 M=5 k=1 l=10程序:function y,t=dds_matlab(N,M,Fs,endtime) k=1;l=10;delta_F=Fs/2N; disp('The frequency resolution of this DDS is:'. ,num2str(delta_F),'Hz'); disp('Output frequencies are:0Hz,',num2str(delta_F),'Hz,'. num2str(2*delta_F),'Hz,.,',num2str(Fs/2),'Hz'); % Construct the Sine Wave LUT store in array LUT t=2*pi*(0:2N-1)/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论