在通道中划分信号

时间:2015-08-21 23:11:31

标签: matlab channels time-frequency

我在时域中有一个信号(从-100到1100 ps的6000个样本)。我必须将其转换为频域并将其划分为100个通道,并找到每个通道的中心频率。

我不擅长“MATLAB”,所以如何做到这一点,帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

根据我对该问题的理解,您希望在频域中表示您的信号。请学习一些有关FFT的教程,以增加对FFT细节的理解。一个好的开始是本教程:FFT Tutorial using Matlab,我曾用它编写下面的代码。

close all;
clear all;
clc;

Fs = 5; % Sampling frequency (in THz)
Ts = 1/5; % Sampling period (in ps)

x = randn(1, 6000); % A random signal of 6000 points
t = [-100:Ts:1100-Ts]; % 6000 time points (in ps)

% Plot signal in time domain
figure;plot(t,x); 
xlabel('Time (ps)'); ylabel('Signal');

N = 100; % Number of FFT points
X = fftshift(fft(x, N)); % Compute and shift FFT
absX = abs(X); % Compute absolute FFT values

% Frequency centers (frequency components) depend on the values of N and Fs
frequency_centers = Fs * [-N/2:N/2-1]/N;

% Plot signal in frequency domain
figure;plot(frequency_centers, absX);
xlabel('Frequency (THz)'); ylabel('abs FFT');

变量frequency_centers显示频率分量。

由于您有6000个时间样本,从-100到1100 ps,采样周期为Ts = 1200/6000 = 0.2 ps,Fs = 1 / Ts = 5 THz。另外,请注意,为了获得6000个时间样本(而不是6001),您需要删除一个边界时间值(此处我丢弃了1100)。