matlab计算截断误差,Matlab相位截断误差仿真综述.doc

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值