mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-02 22:14:45 -04:00
FIR RRC filter
This commit is contained in:
@@ -28,22 +28,26 @@ void MainBench::testFFTRRCFilter()
|
||||
filter.create(0.05f, 0.35f); // 2400 baud, 0.35 rolloff
|
||||
|
||||
qDebug() << "MainBench::testFFTRRCFilter: filter created";
|
||||
FILE *fd_filter = fopen("test_fftrrc_filter.txt", "w");
|
||||
FILE *fd_filter = fopen("test_rrc_filter.txt", "w");
|
||||
|
||||
for (int i = 0; i < RRC_FFT_SIZE; i++) {
|
||||
fprintf(fd_filter, "%f\n", std::abs(filter.getFilter()[i]));
|
||||
}
|
||||
qDebug() << "MainBench::testFFTRRCFilter: filter coefficients written to test_fftrrc_filter.txt";
|
||||
qDebug() << "MainBench::testFFTRRCFilter: filter coefficients written to test_rrc_filter.txt";
|
||||
fclose(fd_filter);
|
||||
|
||||
qDebug() << "MainBench::testFFTRRCFilter: running filter";
|
||||
FILE *fd = fopen("test_fftrrc.txt", "w");
|
||||
FILE *fd = fopen("test_rrc.txt", "w");
|
||||
int outLen = 0;
|
||||
|
||||
for (int i = 0; i < 1024; i++)
|
||||
for (int i = 0; i < 5000; i++)
|
||||
{
|
||||
Real phi = i * (48000.0 / 1200.0) * (2*3.141);
|
||||
Real x = sin(phi);
|
||||
int ss = 48000 / 2400; // Samples per symbol at 2400 baud
|
||||
int d = i / ss; // Symbol index at 2400 baud
|
||||
Real s = (d % 2 == 0) ? 1.0f : -1.0f; // BPSK symbol sequence
|
||||
Real x = (i % ss == 0 ? s : 0.0f); // Pulsed signal at 2400 Hz
|
||||
// Real phi = i * (1200.0 / 48000.0) * (2*3.141);
|
||||
// Real x = sin(phi) > 0.0 ? 1.0f : -1.0f; // Simulate a BPSK signal at 1200 baud
|
||||
filter.process(Complex(x, 0.0f), &rrcFilterOut);
|
||||
outLen++;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user