mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-26 09:41:11 +00:00
DPL2Decoder: Remove unnecessary pointer arguments of DesignFIR
This commit is contained in:
parent
b5c857d14b
commit
d0e75bb438
@ -105,9 +105,7 @@ static void Hamming(int n, float* w)
|
|||||||
*w++ = float(0.54 - 0.46 * cos(k * (float)i));
|
*w++ = float(0.54 - 0.46 * cos(k * (float)i));
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
// FIR filter design
|
||||||
* FIR filter design
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
/* Design FIR filter using the Window method
|
/* Design FIR filter using the Window method
|
||||||
|
|
||||||
@ -122,10 +120,10 @@ opt beta constant used only when designing using kaiser windows
|
|||||||
|
|
||||||
returns 0 if OK, -1 if fail
|
returns 0 if OK, -1 if fail
|
||||||
*/
|
*/
|
||||||
static float* DesignFIR(unsigned int* n, float* fc, float opt)
|
static float* DesignFIR(unsigned int n, float fc, float opt)
|
||||||
{
|
{
|
||||||
unsigned int o = *n & 1; // Indicator for odd filter length
|
unsigned int o = n & 1; // Indicator for odd filter length
|
||||||
unsigned int end = ((*n + 1) >> 1) - o; // Loop end
|
unsigned int end = ((n + 1) >> 1) - o; // Loop end
|
||||||
|
|
||||||
float k1 = 2 * float(M_PI); // 2*pi*fc1
|
float k1 = 2 * float(M_PI); // 2*pi*fc1
|
||||||
float k2 = 0.5f * (float)(1 - o); // Constant used if the filter has even length
|
float k2 = 0.5f * (float)(1 - o); // Constant used if the filter has even length
|
||||||
@ -134,17 +132,17 @@ static float* DesignFIR(unsigned int* n, float* fc, float opt)
|
|||||||
float fc1; // Cutoff frequencies
|
float fc1; // Cutoff frequencies
|
||||||
|
|
||||||
// Sanity check
|
// Sanity check
|
||||||
if (*n == 0)
|
if (n == 0)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
fc[0] = MathUtil::Clamp(fc[0], 0.001f, 1.0f);
|
fc = MathUtil::Clamp(fc, 0.001f, 1.0f);
|
||||||
|
|
||||||
float* w = (float*)calloc(sizeof(float), *n);
|
float* w = (float*)calloc(sizeof(float), n);
|
||||||
|
|
||||||
// Get window coefficients
|
// Get window coefficients
|
||||||
Hamming(*n, w);
|
Hamming(n, w);
|
||||||
|
|
||||||
fc1 = *fc;
|
fc1 = fc;
|
||||||
// Cutoff frequency must be < 0.5 where 0.5 <=> Fs/2
|
// Cutoff frequency must be < 0.5 where 0.5 <=> Fs/2
|
||||||
fc1 = ((fc1 <= 1.0) && (fc1 > 0.0)) ? fc1 / 2 : 0.25f;
|
fc1 = ((fc1 <= 1.0) && (fc1 > 0.0)) ? fc1 / 2 : 0.25f;
|
||||||
k1 *= fc1;
|
k1 *= fc1;
|
||||||
@ -165,13 +163,13 @@ static float* DesignFIR(unsigned int* n, float* fc, float opt)
|
|||||||
for (u32 i = 0; i < end; i++)
|
for (u32 i = 0; i < end; i++)
|
||||||
{
|
{
|
||||||
t1 = (float)(i + 1) - k2;
|
t1 = (float)(i + 1) - k2;
|
||||||
w[end - i - 1] = w[*n - end + i] = float(w[end - i - 1] * sin(k1 * t1) / (M_PI * t1)); // Sinc
|
w[end - i - 1] = w[n - end + i] = float(w[end - i - 1] * sin(k1 * t1) / (M_PI * t1)); // Sinc
|
||||||
g += 2 * w[end - i - 1]; // Total gain in filter
|
g += 2 * w[end - i - 1]; // Total gain in filter
|
||||||
}
|
}
|
||||||
|
|
||||||
// Normalize gain
|
// Normalize gain
|
||||||
g = 1 / g;
|
g = 1 / g;
|
||||||
for (u32 i = 0; i < *n; i++)
|
for (u32 i = 0; i < n; i++)
|
||||||
w[i] *= g;
|
w[i] *= g;
|
||||||
|
|
||||||
return w;
|
return w;
|
||||||
@ -209,7 +207,7 @@ static float* CalculateCoefficients125HzLowpass(int rate)
|
|||||||
{
|
{
|
||||||
len125 = 256;
|
len125 = 256;
|
||||||
float f = 125.0f / (rate / 2);
|
float f = 125.0f / (rate / 2);
|
||||||
float* coeffs = DesignFIR(&len125, &f, 0);
|
float* coeffs = DesignFIR(len125, f, 0);
|
||||||
static const float M3_01DB = 0.7071067812f;
|
static const float M3_01DB = 0.7071067812f;
|
||||||
for (unsigned int i = 0; i < len125; i++)
|
for (unsigned int i = 0; i < len125; i++)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user