我创建了一个6位量化器并通过它传递信号,但是当我绘制DFT时,它在200 MHz时达到峰值然后停止;我没有看到整个频谱。什么阻止我在我的代码中获得更高频率的其余点?
这是我的代码:
bits = 6; %6-bit
fs = 400e6; %sampling frequency
amp = 1; %amplitude
f = 200e6; %actual frequency
vpp = 2; peak-to-peak voltage
LSB = vpp/(2^bits); %least-significant bit
cycles = 1000;
duration = cycles/f;
values = 0:1/fs:duration;
party = LSB:LSB:(vpp-LSB); %partition
blocker = 0:1:(2^bits - 1); %codebook
biblocker = fliplr(decimaltobinary(blocker)); %I created a function that converts decimal to binary
qtone = amp + amp*sin(2*pi*f*values); %tone
[index, q] = quantization(qtone,party,blocker); %I created a quantizing function
ftq = fft(q)/length(q); % Fourier Transform (Scaled)
qf = linspace(0, 1, fix(length(q))/2+1)*(fs/2); % Frequency Vector
qi = 1:length(qf); % Index Vector
qa = abs(ftq(qi))*2/.7562;
figure
plot(qf/1e6, qa) % One-Sided Amplitude Plot
xlim([100 500]);
xlabel('Frequency [MHz]')
ylabel('Amplitude')
这是我得到的:
答案 0 :(得分:1)
由于您选择了采样频率fs = 400e6,即400 MHz,因此您只能观察到高达200e6的频谱,即采样频率的一半。您可以使用奈奎斯特采样定理来阅读其背后的理论。
作为解决方案,您需要设置频谱上要观察频率的两倍。无法观察整个频率,需要设置有限的频率限制。
答案 1 :(得分:1)
对于基带采样数据,频谱中高于采样率一半的所有内容都是冗余的,只是频谱的别名低于采样率的一半。因此,不需要重复显示相同的频谱。
当采样有限的时间长度(小于地球的年龄等)时,您必须采用高的速率进行采样,而不是信号中最高频率的两倍。 2X(200MHz信号为400Msps)通常无法正常工作。
答案 2 :(得分:0)