簡體   English   中英

一維信號的頻譜繪制

[英]Plotting spectrum of a 1D signal

我正在嘗試對信號進行一些計算。 該信號應該是來自rfid標簽的測量讀數,該標簽由868 MHz載波上40 kHz左右的塊波調制而成。 我所擁有的信號以250 MHz進行采樣,從而為我提供了1250005個存儲在此.mat文件中的采樣。

現在,我想繪制頻譜x [n]。 我被告知要做的是對1024個樣本片段進行fft運算。 或使用Matlabs PSD功能。 但是我為此感到掙扎。 到目前為止,這是我的Matlab代碼:

load antenna_1;
x = channel_1;

Fs = 250e6; % Sampling frequency 
t = (0:length(channel_1)-1)*1/Fs; % Time vector 
nfft = 1024; % Length of FFT

X = fft(x,nfft);
X = X(1:nfft/2);
mx = abs(X);
f = (0:nfft/2-1)*Fs/nfft; % Frequency vector

plot(t,x);
xlabel('Time (s)'); ylabel('Amplitude');
figure(2);
plot(f,mx);
xlabel('Frequency (Hz)'); ylabel('Power');

最后的圖表顯示了119 MHZ附近的一個頻率分量。 現在,由於868 MHz信號的混疊868-3 * 250 = 118,這並不完全奇怪。但是我仍然不確定這是否確實是我的信號頻譜嗎? 我將如何使用psd函數獲取頻譜?

你們真的很有幫助,謝謝!

所以我改用pwelch,並加上以下代碼:

load antenna_1;
x = channel_1;

Fs = 250e6;
Nfft = 2^10;
[Pxx,freq] = pwelch(x,hamming(Nfft),[],[],Fs);

figure;
plot(freq,Pxx);

現在,這可以正常工作,並且我得到的外觀效果與以前大致相同。 但是現在我想將119MHz附近的分量轉換為零。 因此,在該方案中從x [n]到w [n]。 為此,我要應用以下乘法:

n = 0:1:Nfft-1;
w = linspace(0,2*pi,Nfft/2+1);

Pmult = Pxx.*exp(-1j*pi*2);
F = exp(-j*w*119e6).*Pxx';

figure;
plot(freq,abs(Pmult));

但是,我似乎無法使組件與此完全轉移嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM