Resampling a binary data
9 ビュー (過去 30 日間)
古いコメントを表示
TEXBAT is a recorded dataset about spoofing scenarios for evaluating GPS signal authentication techniques.
On this project, there are recorded GPS signals stored as complex 16- bit samples at a rate of 25 Msps.
How can I change its sample rate from 25Msps to sample rates below than 3.2Msps?
3 件のコメント
Walter Roberson
2022 年 8 月 27 日
I don't think I quite understand some of these outputs
data = repelem([1+2i, -3-4i], 1, 4).'
resample(data, 1, 2)
ifft(fft(data), 4)
interp1(1:length(data), data, 1:2:length(data)).'
data = repelem([1+2i], 1, 8).'
resample(data, 1, 2)
ifft(fft(data), 4)
interp1(1:length(data), data, 1:2:length(data)).'
I guess the fft result suggests that the power is being redistributed over the output, so the ifft output should probably be divided by the decimination factor
採用された回答
Star Strider
2022 年 8 月 27 日
The input vector has to be a real double array. So resample the real and imaginary parts separately.
Doing the experiment —
Fs = 1000;
t = linspace(0, 9999, 10000).'/Fs; % Assume Column Vectors
sz = exp(2*pi*1i*t*100);
% Resz = real(sz);
% Imsz = imag(sz);
[zrr,tr] = resample(real(sz),t,500);
[zir,tr] = resample(imag(sz),t,500);
szr = zrr + 1i*zir;
figure
plot(t, real(sz), '.-', t, imag(sz),'.-', 'DisplayName','Original (Fs = 1000)')
hold on
plot(tr, real(szr), 's-', tr, imag(szr), 's-', 'DisplayName','Resampled (Fs = 500)')
hold off
grid
legend('Location','best')
xlim([0 1]*5E-2)
It appears to work as expected.
.
2 件のコメント
Star Strider
2022 年 9 月 4 日
I am not certain what you are referring to.
If you are sampling an analog signal, it is appropriate to do analog filtering of the signal prior to digitising it using a Bessel lowpass filter with the cutoff frequency slightly less than the sampling frequency of the A/D converter. Bessel filters are characteristically IIR filters, and are preferred here because they do not exhibit any phase distortion in the passband.
I generally prefer IIR filters unless I need them to have several different passbands or stopbands in the filter. In that situation, FIR filters are generally easier to design and implement, and I usually use them only as discrete filters with a signal that has already been digitised
その他の回答 (1 件)
Image Analyst
2022 年 8 月 27 日
If you can read it into a time, t, array and gps (y) array, you might try interp1
gpsNew = interp1(t, gpsOld, tNew);
The old signal will have about 8 times as many samples as your new signal. Of course if you want to average the values in a certain window so you'll take the average of all the extra values instead of just picking a sample, you'll have to do some other things, like preprocessing the signal with movmean to get a signal averaged over the window.
2 件のコメント
Image Analyst
2022 年 9 月 4 日
OK, no problem. Looks like Star solved it for you (since you accepted his answer).
参考
カテゴリ
Help Center および File Exchange で Analog Filters についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!