matlab - 如何证明二维 DFT 的信号可分离性?MATLAB
问题描述
我尝试使用可与 2 个 1D 向量分离的 2D 矩阵来证明 2D Fourier 变换的信号属性的可分离性。在哪里:
f(x,y) = f(x)*f(y)
那么 F(u,v) = F(u)*F(v)
使用以下代码:
% Separabilty of signal
H = [-1,2,-1;-2,4,-2;-1,2,-1];
b3 = fft2(H)
Hx = [-1,2,-1];
Hy = [1,2,1]';
c2 = fft(Hy)*fft(Hx')'
if norm(vecnorm(b3-c2)) < 1e-5
"same"
else
"different"
end
但是,尽管数字是正确的,但它们在矩阵内的顺序发生了变化。我不明白出了什么问题。
解决方案
错误在这里
c2 = fft(Hy)*fft(Hx')'
为什么要应用双重换位fft(Hx')'
?
自从
H = Hy*Hx
然后
c2 = fft(Hy)*fft(Hx)
请注意,在 matlab 中,该操作执行复共轭转置,这就是不等于'
的原因,因为第二个转置改变了虚部的符号。fft(Hx)
fft(Hx')'
推荐阅读
- c# - 用一个全局 try catch 块替换多个 try catch
- vuetify.js - Vuetify 2.1 V-Select 更改后重置或清除选择
- android - 带有 pathPattern 的意图过滤器
- postgresql - 更新了 Xubuntu,Postgres 停止工作
- java - 加乘 | 十二月长挑战赛 2
- java - Spring Boot 上的 QueryDSL 问题
- javascript - Nodejs FsSystem
- excel - 产生完全不同结果的相似(简单)公式
- ruby-on-rails - 如何在heroku上进行回滚提交?
- android - android 房间数据库返回错误的模式表