1
0
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:
f4exb
2026-02-10 23:25:06 +01:00
parent 26455261ee
commit 649312d7ba
13 changed files with 432 additions and 23 deletions
+10 -6
View File
@@ -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++;