【傅里叶变换的matlab实现】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

傅里叶变换在matlab中实现的详细解释。


一、傅里叶变换的matlab实现

x = 0:pi/30:2*pi;
data = cos(x).*sin(exp(x));
fs=100 %采样率
N=61     %数据处理点数
data_fft=abs(fft(data,N))/(N/2);
f=fs*(0:N)/N; %横轴频率刻度:最大值取决于fs
figure()
plot([1:61]/fs,data)
xlabel('时间/s')
figure()
plot(f(1:N/2),data_fft(1:N/2))
xlabel('频率/HZ')

二、逐步拆解

  • fs=100 采样率,单位HZ
  • N=128 变换数据点数
  • y=fft(x,N) 初始频率幅值:对y进行傅里叶变换,x为待变换信号
  • mag1=abs(y)
  • mag2=mag1/N*2 最终频率幅值/N*2

/N:采用N1点和N2点的相同频率的振幅是有不同的表现值,为了与真实振幅对应,需要将变换后结果乘以2除以N。
*2:信号的频谱是前后对称的,正负轴上都分配了幅值占比,而一般负频率没有物理意义,所以把正频率对应的频率幅值的两倍作为频谱幅值。

  • f=fs*(0:N)/N) 频率变化范围,即作为频谱x轴

虽然fft变换的时候没有输入fs,但是最终的频谱横轴是由fs决定的

  • plot(f,mag2) 原始频谱图(有一半重复)
  • plot(f(1:N/2),mag2(1:N/2))最终频谱图:原始频谱图的一半(此时f最大值只有原来的一半,符合奈奎斯特定律)
    注:fft描述的特定信号频率在整个信号中的占比大小,即频率幅值含义是频率占比,指该频率成分在整个信号所有频率中的占比。

在这里插入图片描述在这里插入图片描述


  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
傅立叶变换在MATLAB中可以使用多个函数来实现。其中,fft2函数用于进行二维快速傅立叶正变换,ifft2函数用于进行二维快速傅立叶反变换。fftshift函数可以将傅立叶变换的原点移到中心,ifftshift函数则是fftshift的反变换。另外,real函数可以提取复数的实部,imag函数可以提取复数的虚部。\[1\] 下面是一个MATLAB代码的实例,展示了如何对数字图像进行傅立叶变换和反变换: ```matlab clc;clear;close all; % 读取图像 i = imread('lena.bmp'); i = rgb2gray(i); % 将真彩色图像转换为灰度图像 i = im2double(i); % 将数据类型转换为double,数值范围变为\[0,1\] % 进行快速傅立叶变换 i1 = fft2(i); % 将傅立叶变换进行象限转换,即将中心移到零点 i2 = fftshift(i1); % 求傅立叶变换结果的模,即傅立叶频谱 i3 = abs(i2); % 将傅立叶变换结果映射到较小的正数 i4 = log(i3+1); % 将变换的象限转换回去,即将中心复位 i5 = ifftshift(i2); % 进行快速傅立叶反变换 i6 = ifft2(i5); % 显示结果图像 subplot(131);imshow(i);title('原图'); subplot(132);imshow(i4,\[\]);title('傅立叶变换频谱'); subplot(133);imshow(i6);title('傅立叶逆变换图像'); ``` 另外,下面是另一个MATLAB代码的实例,展示了如何对图像进行傅立叶变换和反变换: ```matlab % 读取图像 R = imread("img/test2.png"); % 将图片变为灰度图像 I = rgb2gray(R); % 进行傅立叶变换 J = fft2(I); % 图像平移 L = fftshift(J); % 平移回来 M = ifftshift(L); % 傅立叶反变换 M = ifft2(M); % 显示结果图像 figure; subplot(121); imshow(I); title('原图'); subplot(122); imshow(uint8(M)); title('反变换'); ``` 这些代码示例演示了如何使用MATLAB实现傅立叶变换和反变换,并显示结果图像。你可以根据自己的需要进行修改和调整。 #### 引用[.reference_title] - *1* *2* [傅里叶变换的相关实验——matlab实现](https://blog.csdn.net/xcz8023/article/details/126413641)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [图像傅里叶变换MATLAB实现](https://blog.csdn.net/qq_45735233/article/details/112755443)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值