您好,前两天我问了您一个matlab的傅立叶变换问题。

[复制链接]
查看11 | 回复1 | 2011-5-27 12:48:17 | 显示全部楼层 |阅读模式
我以0.1为间隔在85到90的范围内有若干个数据,现在我的范围是,85-95,并配有若干个数据,这样您给我的程序我改成这样就行了是吗?
a=[2106.653552781.83087751756.1139571310.1460521023.9075043527.5728649.0728911764038.940274992.48170532007.1036622217.545952638.71922352229.663982182.1277893107.68853875.917156773225.6438831325.3903641204.0953282584.96705829.078291792001.483697171.06583291293.841297522.80756121115.9552171754.715852338.3826282939.694559343.06085222332.2485411173.643746951.38565511514.970689361.76844842292.824609241.51486543107.424883850.3796032371.6779391876.104192913.57821671895.648585198.65094591824.029567162.22049222161.556865756.77436291581.141111806.156674547.99408561912.574986166.86569791283.527697282.33995031174.763964818.3100295991.54546341809.787277571.33685652168.18028512.16327431437.066923718.5933053935.46295351224.796335937.83334532059.185095950.80694282447.4568211011.0113951837.5201941121.6977241137.3701841535.8538511075.2479372220.9309441269.9656972498.5300381359.7539262023.8098011314.9347611348.178811580.027981192.703732192.3989171419.4748592401.5206411529.5858951994.761741367.5523581453.4400741483.5903681294.9739622083.4682131517.4394632300.5163351632.3235731907.4173441382.774881489.08495];
y=[a]\';
n=85:0.1:95;
figure;
stem(n,y);
figure;
plot(n,y);
w=fft(y,256);
ww=2/length(w)*(0:(length(w)-1));
plot(ww,abs(w));
回复

使用道具 举报

千问 | 2011-5-27 12:48:17 | 显示全部楼层
首先,我们来分析一下:
a是一个101点序列,n=85:0.1:95是一个什么意思呢?按照你的理解就是采样周期T=0.1s,即采样频率fs=10Hz,然后你对a做了256点(相对101点来说已经足够了)的DFT,从你的程序来看,你似乎要用DFT来近似连续信号a的模拟频谱,那么,我认为你的程序当中的ww=2/length(w)*(0:(length(w)-1))是不对的,因为ww的最大值近似为2,这2又代表什么呢?显然这不是近似的模拟信号的频谱,我们都知道采样信号的频谱是以采样频率fs为周期拓展的,fs/2就代表了最高频率分量,所以我认为你程序当中的ww设置是不对的,应该改为ww=fs/256*(0:(length(w)-1))!






参考资料:<spanclass=\"gray\">数字信号处理</span>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行