(1)matlab是按列储存的,当然可以使1256的了,不过需要自己设。傅里叶变化是对称变化,一般都要求数据个数是2的幂次。
(2)tfr对谁做fft变换,fft就和谁是同样大小的矩阵。
(3)上面说了,fft变换后的波谱是对称的,如果tfr是256的话,只需取256/2=128个就行。
(4)随机数组或原数据体中数据之间无关的话,那么变换后的振幅图和相位图都是上下波动的,密集线就是波动情况,密集程度与点距和线长有关。
用MATLAB 实现傅里叶变换:
用户任意输入一个函数,然后,输出函数的傅里叶变换函数,然后输出振幅频率 。
x=sin(2pit); %任意输入一个函数。
y=fft(x); %傅里叶变换函数。
plot(abs(y)); %振幅频率。
什么样的信号,频率范围是多少?是要用FFT滤波,还是用其他的方式?补充一下,如果是用FFT滤波的话:
对于给定的序列x(n),和采样频率fs等信息,先求其FFT频谱
y=abs(fft(x));
plot((1:length(x))fs/length(x),y);title('信号的频谱');xlabel('频率');
然后你大概确定一下,你需要滤除的频带,上面的图形中可以看出噪声的频带。
比如说,你想要滤除从f1~f2的噪声,最简单的方法就是在频域将这一段置零,
y(200:300)=0;
%这里我假设的是200到300这一段就是频率f1~f2的。这就是频率域滤波了,然后再反变换回去就行了
x=ifft(y);
%
信号滤波后重建
具体的如果设置参数,就要看你的信号的特征了。
我看兄台写的代码还是很专业的,我只回答第三问:窗函数肯定是不能任意选择的,加窗的意义在于减小频谱能量泄露,因为做傅里叶变换时只取信号的一段作分析,相当于将信号截断,在截段处引入了多余的高频分量,所以窗函数一般在两端是呈衰减的趋势,其次窗函数本身的频谱要比较平滑,不能对原信号的频谱带来太大影响,所以窗函数不能是任意的数字窗。
傅立叶变换只能对符号参数,不能对具体的实参。因此定义t的范围是不正确的。
可以这样写,syms a;
>> fourier(sin(a))
先定义符号参量a,在对sin(a) 进行傅立叶变化。
以上就是关于Matlab中短时傅里叶变换中一些函数变换步骤不明,求解释!全部的内容,包括:Matlab中短时傅里叶变换中一些函数变换步骤不明,求解释!、用matlab编程将下列方程组进行傅里叶变换,求解。、信号的傅里叶变换,matlab程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)