是關於雷達干擾的干擾訊號。整個專案在matlab上模擬,但是關於這個訊號,不知道怎麼編寫,式子中的U(t)能否用randn函式?

如何用matlab編寫噪聲調頻干擾訊號cvcu444pit2013-04-19

也就是說,噪聲調頻訊號具有如下的瞬時頻率:

f(t)=f0+KFM*u(t)

% 摘自《資訊時代的電子戰》(29所)

% 1。產生高斯噪聲電壓

% 2。用6極點橢圓濾波器形成噪聲頻寬

% 3。將濾波器輸出送到一壓控震盪器,輸出即為調頻噪聲干擾訊號

clf;

clc;

close all;

clear all;

N = 4096;

tmax = 1/2;

t = 2*tmax*(-N/2:N/2-1)/N;

fs= N/2/tmax;

n = rand(1,N);

subplot(2,2,1);plot(t,n);grid;

xlabel(‘Time’);ylabel(‘Noise Voltage’);

title([‘Gaussian Noise Voltage’]);

y = erf(n);

[b,a] = ellip(6,。5,。5,。005);

v = filter(b,a,n);

verf = filter(b,a,y);

f0 = 0;k = 50; j=sqrt(-1);

f= f0 + k*v;

f1 = f0 + k*verf;

x = cos(2*pi*f。*t) + j*sin(2*pi*f。*t);

xerf = cos(2*pi*f1。*t) + j*sin(2*pi*f1。*t);

V = fft(v);

Pv = V。*conj(V);

Pv = fftshift(Pv);

X = fft(x);XE = fft(xerf);

Px = X。*conj(X);

Pxe = XE。*conj(XE);

Px = fftshift(Px);

Pxe = fftshift(Pxe);

Px = Px/max(Px);Pv = Pv/max(Pv);Pxe = Pxe/max(Pxe);

Pxdbm = 30 + 10*log10(Px+1e-6);

Pvdbm = 30 + 10*log10(Pv+1e-6);

Pxedbm = 30 + 10*log10(Pxe+1e-6);

fsam = fs*(-N/2:N/2-1)/N;

subplot(2,2,2);

plot(fsam,Pvdbm);grid;

subplot(2,2,3);

plot(fsam,Pxdbm);grid;

subplot(2,2,4);

plot(fsam,Pxedbm);grid;