求大神帮忙改错,MATLAB程序如下function owen() %自编的czt对比fftclear;clc;t=0:0.001:1; h=3*sin(2*pi*120*t)+2*cos(2*pi*280*t); Fs=1000; f1=100; f2=300; m=length(h); w=exp(-1i*2*pi*(f2-f1)/

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 15:27:29

求大神帮忙改错,MATLAB程序如下function owen() %自编的czt对比fftclear;clc;t=0:0.001:1; h=3*sin(2*pi*120*t)+2*cos(2*pi*280*t); Fs=1000; f1=100; f2=300; m=length(h); w=exp(-1i*2*pi*(f2-f1)/
求大神帮忙改错,MATLAB程序如下
function owen() %自编的czt对比fft
clear;clc;
t=0:0.001:1;
h=3*sin(2*pi*120*t)+2*cos(2*pi*280*t);
Fs=1000;
f1=100;
f2=300;
m=length(h);
w=exp(-1i*2*pi*(f2-f1)/(m*Fs));
a=exp(1i*2*pi*f1/Fs);
y=fft(h,m);
z=func_czt(h,m,w,a);
fy=(0:m-1)*Fs/m;
fz=(0:m-1)*(f2-f1)/m+f1;
subplot(2,1,1);
plot(fy,abs(y));
title('fft');
subplot(2,1,2);
plot(fz,abs(z));
title('chirp z') ;
function z = func_czt(h,m,w,a)
len1 = length(h);
nlist = (0 : 1 : len1-1).';
x1 = h .* a.^(-nlist) .* w.^(nlist.^2 / 2);
n1 = 2^nextpow2(len1 + m - 1);
h1 = [w.^(-(0 : 1 : m-1).'.^2/2); zeros(n1 - (m + len1 - 1), 1); w.^(-(-len1+1 : 1 : -1).'.^2/2)];
y1 = ifft(fft(x1, n1) .* fft(h1));
z = y1(1 : 1 : m) .* w.^((0 : 1 : m-1).'.^2 / 2);
程序主要目的是实现function z = func_czt(h,m,w,a)与matlab中的fft对比

求大神帮忙改错,MATLAB程序如下function owen() %自编的czt对比fftclear;clc;t=0:0.001:1; h=3*sin(2*pi*120*t)+2*cos(2*pi*280*t); Fs=1000; f1=100; f2=300; m=length(h); w=exp(-1i*2*pi*(f2-f1)/

fft是宽带分析工具. 频率步长 = fs / m = 1000 / 1001 ≈ 1 Hz

czt是窄带分析工具, 频率步长 = (f2 - f1) / m = (300 - 100) / 1001 ≈  0.2 Hz

信号主瓣宽度等于 2 / 1 = 2 Hz,

当使用fft时, 频率分辨率太低,在主瓣只采集了两点,

可以把h=3*sin(2*pi*120*t)+2*cos(2*pi*280*t);  

改成h=3*sin(2*pi*120.5*t)+2*cos(2*pi*280.5*t);  

再看看效果, 可以但到幅度明显与修改之前不同. 失真严重.

而czt 分辨率是0.2Hz, 主瓣采集了10点. 因此幅度始终很准确.

 

以上用到了频谱分析的一些知识, 希望对你有帮助

求大神帮忙改错,MATLAB程序如下function owen() %自编的czt对比fftclear;clc;t=0:0.001:1; h=3*sin(2*pi*120*t)+2*cos(2*pi*280*t); Fs=1000; f1=100; f2=300; m=length(h); w=exp(-1i*2*pi*(f2-f1)/ Matlab非线性拟合给定方程程序如下,就是找不到那里错了.求大神指教.x=[3252 3476 3814 6615 8075 9438 10448 26112 28594 31651]; y=[0.7/10.4 1.7/10.4 2.7/10.4 3.7/10.4 4.7/10.4 5.7/10.4 6.7/10.4 7.7/10.4 8.7/10.4 9.7/10.4]; fu 求大神用matlab帮忙做三维图,求程序x,y的取值范围0-5000 matlab编程问题,求大神帮忙! 我是MATLAB初学者,求MATLAB大神帮忙运行程序.源程序素材我我都有 就是不知道怎么运行起来 大神可以留下联系方式传给你,帮忙解决 matlab牛顿迭代法求方程根程序求大神帮写个牛顿迭代法解方程的程序. 关于matlab求最小值最小值点的问题求大神附上matlab程序 求解二维抛物线型偏微分方程matlab程序方程如下:求h,需要编出求解的matlab程序, 高一英语改错题,求大神帮忙 求大神帮忙用matlab求解微分方程的数值解 求大神帮忙解答两道MATLAB题目 关于数值计算之误差计算的matlab实验定义函数程序如下:function f=f(x)f=x.^3-log(2.*x)+1./x定义一阶导数第一种算法函数dsh1为:function y=dsh1(fu,x,h)y=(feval(fu,x+h)-feval(fu,x))/h;y;然后运行之后得到的是: 求大神帮忙写一篇作文.内容如下 改错题,求大神! 短文改错求大神 短文改错求大神 求英语大神,改错! 英语大神求改错