[英]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.