diff --git a/dnn/fwgan.c b/dnn/fwgan.c
new file mode 100644
index 0000000000000000000000000000000000000000..bce3670aaa807aa9dedc10244267473173bb2131
--- /dev/null
+++ b/dnn/fwgan.c
@@ -0,0 +1,51 @@
+/* Copyright (c) 2023 Amazon */
+/*
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+   - Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+   OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "fwgan.h"
+#include "os_support.h"
+#include "freq.h"
+
+void fwgan_init(FWGANState *st, const float *pcm)
+{
+  OPUS_CLEAR(st, 1);
+}
+
+static void run_fwgan(FWGANState *st, float *pcm, const float *input)
+{
+
+}
+
+void fwgan_synthesize(FWGANState *st, float *pcm, const float *features)
+{
+  float lpc[LPC_ORDER];
+  lpc_from_cepstrum(lpc, features);
+  run_fwgan(st, pcm, features);
+  /* Run LPC filter. */
+}
diff --git a/dnn/fwgan.h b/dnn/fwgan.h
new file mode 100644
index 0000000000000000000000000000000000000000..84749176c13808d9a01c8097101621113b1b4dae
--- /dev/null
+++ b/dnn/fwgan.h
@@ -0,0 +1,44 @@
+/* Copyright (c) 2023 Amazon */
+/*
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+   - Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+   OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef FWGAN_H
+#define FWGAN_H
+
+#include "freq.h"
+
+#define FWGAN_CONT_SAMPLES 320
+
+typedef struct {
+  float syn_mem[LPC_ORDER];
+} FWGANState;
+
+void fwgan_init(FWGANState *st, const float *pcm);
+
+
+void fwgan_synthesize(FWGANState *st, float *pcm, const float *features);
+
+
+#endif /* FWGAN_H */
diff --git a/lpcnet_headers.mk b/lpcnet_headers.mk
index dc44429f709c64b2811637991cd81122bab6e9a3..93ca74fbf181780eedc7ecc34dd4d6d85d9ae42f 100644
--- a/lpcnet_headers.mk
+++ b/lpcnet_headers.mk
@@ -8,6 +8,7 @@ dnn/lpcnet.h \
 dnn/burg.h \
 dnn/common.h \
 dnn/freq.h \
+dnn/fwgan.h \
 dnn/kiss99.h \
 dnn/lpcnet_private.h \
 dnn/nnet_data.h \
diff --git a/lpcnet_sources.mk b/lpcnet_sources.mk
index adad6dec15f99eba3476b234ba903b37cf113484..4c6e73f32f53b89fabde0cb9242b4c582f480745 100644
--- a/lpcnet_sources.mk
+++ b/lpcnet_sources.mk
@@ -1,6 +1,7 @@
 LPCNET_SOURCES = \
 dnn/burg.c \
 dnn/freq.c \
+dnn/fwgan.c \
 dnn/kiss99.c \
 dnn/lpcnet.c \
 dnn/lpcnet_enc.c \