matlab怎麼求衝激函式的傅立葉變換

2021-04-19 05:08:02 字數 1915 閱讀 8113

1樓:匿名使用者

syms t

fourier(dirac(t)) %在matlab中衝擊函式為dirac()

ans = 1

%反變換

ifourier(sym('1'))

ans = dirac(x)

如何在matlab中求sgn符號函式的傅立葉變換

2樓:風雨陽光溫暖

符號函抄數不是絕對可積襲

的函式,不存在常義下的傅立葉bai變換。在考慮廣義du函式的條件zhi下是可求的,但dao

不能用定義式f(jw)=∫f(t)e^dt來求,可以這樣求:

首先已知f=1,且2δ(t)=d(sgn(t))/dt。根據頻域微分定理f=jwf,有f=jwf,得到f=2/(jw)

如何用matlab程式設計求函式的傅立葉變換頻譜函式

3樓:幻想餘

fs = 128; % 取樣頻率

t = 1/fs; % 取樣時間

l = 256; % 訊號長度

t = (0:l-1)*t; % 時間

x = 5 + 7*cos(2*pi*15*t - 30*pi/180) + 3*cos(2*pi*40*t - 90*pi/180); %cos為底原始訊號

y = x + randn(size(t)); %新增噪聲

figure;

plot(t,y)

title('加噪聲的訊號')

xlabel('時間(s)')

n = 2^nextpow2(l); %取樣點數,取樣點數越大,分辨的頻率越精確,n>=l,超出的部分訊號補為0

y = fft(y,n)/n*2; %除以n乘以2才是真實幅值,n越大,幅值精度越高

f = fs/n*(0:1:n-1); %頻率

a = abs(y); %幅值

p = angle(y); %相值

figure;

subplot(211);plot(f(1:n/2),a(1:n/2)); %函式fft返回值的資料結構具有對稱性,因此我們只取前一半

title('幅值頻譜')

xlabel('頻率(hz)')

ylabel('幅值')

subplot(212);plot(f(1:n/2),p(1:n/2));

title('相位譜頻')

xlabel('頻率(hz)')

ylabel('相位')

如何用matlab實現矩形脈衝訊號的傅立葉變換

4樓:匿名使用者

首先 產生矩形脈衝訊號,可以使用 rectpuls(t,w) 函式產生一個幅值為1,以t=0為中心對稱,半寬度為專w/2的矩形脈衝

然後 傅裡屬葉變換 是用 fft() 命令的。如果要得到頻譜的話還要再處理一下,具體就不多說了,給個程式樣例:

t=-20:20;

w=10;

y=rectpuls(t,w); %矩形脈衝訊號yy=fft(y);

n=size(y);

n=n(2);

fy=abs(fft(y))/n*2; %頻譜subplot(2,1,1)

plot(y);

subplot(2,1,2)

plot(fy);

挺粗糙的,最後得到的兩個圖分別是方波脈衝和頻譜圖。。

順帶一提:

1) 三角波是tripuls(t,w);

2) 矩形波也可以通過ones()和zeros生成一個訊號矩陣3) 具體的函式使用和引數規則請參閱help 「command」

4) 其實這些用simulink做,裡面都有現成的模組。這樣倒是很簡潔,但也不容易看懂

如何用matlab求多元函式的極值

on來求解。寫成向量形式,約束a x b,初始值x0附近可以搜出出區域性極小值。輸入 z x 7.2 sqrt 25 15 x 1 2 7.2 107 20 x 1 sqrt 8 x 2 2 20 x 1 2 7.2 x 2 a 1,0 0,1 b 15 8 x0 1 1 x,feval fminc...

求簡單的matlab程式,想實現函式的影象顯示,並且當輸入x

你這個系 複數太麻煩,寫個制m檔案吧 function y f x y 9.7800000000000082 0.0084265734265880 x 0.0015909090909031 x.2 0.0001631701631693 x.3 0.0000058275058275 x.4 end儲存...

如何用matlab求兩個函式的卷積

function convolution t 4 0.001 4 e rectpuls t 0.25,1.5 plot t,e pause h tripuls t 1,2,1 plot t,h pause s 8 0.001 8 f conv e,h plot s,f 卷積後訊號就變長了,如果不想改...