图像二维采样(2)

本文详细解读了离散傅里叶变换(DFT)的基本原理,通过模拟DFT实例展示了如何计算待测频率,并将其与快速傅立叶变换(FFT)进行比较。着重介绍了频域信号的特征,以及模拟DFT与FFT在频谱展示上的差异。
摘要由CSDN通过智能技术生成

离散傅里叶变换DFT

这位肖畅大哥讲的好:通俗解释离散傅里叶变换

模拟DFT

close all;

n = 0:1:39;                 %40个离散点
A = cos(2*pi*2*n/40);       %待测频率
sum = zeros(1,40);
for freq = 0:39             %40个基信号
    B = cos(2*pi*freq*n/40);
    C = A.*B;               %待测频率与基信号乘积
    for num = 1:40          %乘积求和
        sum(freq+1) = sum(freq+1) + C(num);
    end
end

figure;
stem(n,A);
title('待测频率-时域信号');

figure;
stem(n,sum);
title('模拟DFT-频域信号');

在这里插入图片描述
解释频域图的含义:
1.频率分成40份,这是分别是基信号,0—39/40*2π(0-39)
2.除了信号2/40*2π38/40*2π以外,其他都为0,其中38/40*2π也可以写成2π-38/40*2π=-2/40*2π。就是说模拟DFT的结果是:检测出了待测信号的频率和负频率。
3.对比FFT结果(代码和结果图):

n = 0:1:39;
A = cos(2*pi*2*n/40);

B = fft2(A);
figure;
stem(abs(B));               
title('FFT-频域信号');

C = fftshift(B);        %把38/40移到-2/40
figure;
stem(abs(C));
title('频移后');

在这里插入图片描述
与模拟DFT有一点不同:FFT横坐标是1—40,模拟DFT是0—39
另外一点要注意的是:FFT频移后,没有显示负频率,所以看图的时候注意,把x=21看做0频率

抽样后的频谱幅值是原来的1/X

A = zeros(1,40);            %保证频域为40刻度
n = 0:2:39;                 %每两个点抽样一个
A(n+1) = cos(2*pi*2*n/40);
B = fftshift(fft2(A));      %FFT+频移
figure;
stem(abs(B));
title('1/2抽样');

在这里插入图片描述
对比(原图—抽样)频域图:
1.抽样后的DFT频谱图幅值是原来的1/X,X是抽样间距(每X像素抽一个点)。所以需要将抽样得到的频谱乘以X。(有兴趣可以看看:为什么幅值变成1/X了
2.抽样图多了两条竖线,对应信号:负18/40*2π18/40*2π。这对应了图像二维采样(1)里的“频谱岛”。频谱岛之间的距离等于1/X=40/2=20把1换成原图的刻度40)。x=1的“频谱岛”和x=21的“频谱岛”相距20,刚好验证了这一点。(有兴趣可以看看:为什么代码第一行要“保证频域为40刻度”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值