當前位置:
首頁 >
householder变换qr分解matlab_【基础教程】Matlab实现傅里叶变换
發布時間:2023/12/3
41
豆豆
生活随笔
收集整理的這篇文章主要介紹了
householder变换qr分解matlab_【基础教程】Matlab实现傅里叶变换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
傅立葉變換
傅立葉變換是一種常見的分析方法,傅立葉變換將滿足一定條件的函數表示為一些函數的加權和(或者積分)。可以分為四個類別:?
1. 非周期連續性信號?
對應于傅里葉變換,頻域連續非周期?
2. 周期性連續性信號?
對應于傅立葉級數,頻域離散非周期?
3. 非周期離散信號?
對應于DTFT(離散時間傅立葉變換),頻域連續周期?
4. 周期性離散信號?
對應于DFT(離散時間傅立葉變換),頻域離散周期
傅立葉級數
首先從傅立葉級數開始分析,傅立葉級數是將一個信號在一組正交基上進行分解的體現。
連續時間傅立葉變換
離散時間傅立葉變換
離散時間傅立葉變換在頻域上是連續的,但由于計算機無法表示無限長的時間片段,已經無法表示全部頻率,一般取一定頻域的分量。
二維傅立葉變換
傅立葉變換實現
只有離散傅里葉變換才可以實現,在MATLAB中實現有fft,fft2進行傅里葉變換,同樣可以手動進行變換。
一維傅立葉變換
% xn是信號,n是坐標,N是點數% N =8;% n = [0:1:N-1];% xn = 0.5.^n; % 指數信號function [] = DFTusefft(xn,n,N) figure(1); Xk=fft(xn,N); % 傅立葉變換 subplot(211); stem(n,xn); title('原信號'); subplot(212); stem(n,abs(Xk)); title('FFT變換')endDTFT?由于DTFT的頻域是連續的而且是無窮的,當我們選擇的最高頻域足夠高時,可以基本代表信號特征,可以進行編程。
function [] = DFT(xn,n,N) Xk = zeros(1,N); for k=1:N sn =0.0; for i=1:N sn = sn+xn(i)*exp(-j*2*pi*i*k/N); end Xk(k) = sn; end figure(2); subplot(211); stem(n,xn); title('原信號'); subplot(212); stem(n,abs(Xk)); title('DFT')end二維傅立葉變換
function [] = imageDFT2fft() I=imread('rice.png');????????I=im2double(I); [x,y] = size(I); Ax = ones(x,y); ans = ones(x,y); com = 0+1i; % 對每一列進行DFT for m=1:y Ax(:,m) = fft(I(:,m)); end % 對每一行進行DFT for k=1:x ans(k,:) = fft(Ax(k,:)); end F=fftshift(ans); F= abs(F); F=log(F+1); figure(7); imshow(F,[]);end往期回顧>>>>>>
基于柵格地圖——遺傳算法的機器人最優路徑規劃【模式識別】Matlab指紋識別【基礎教程】matlab繪制疫情地圖matlab自動識別銀行卡號【優化問題】遺傳算法求最值無參考圖像質量評價之基于多特征的增強圖像質量評價總結
以上是生活随笔為你收集整理的householder变换qr分解matlab_【基础教程】Matlab实现傅里叶变换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python递归算法_python递归算
- 下一篇: matlab 定义一个有自变量的方程_常